/*
 * =====================================================================================
 *
 *       Filename:  main.cpp
 *
 *    Description:
 *
 *        Version:  1.0
 *        Created:  2017年05月02日 21时44分22秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Crane (), 215379951@qq.com
 *   Organization:  Free Src
 *
 * =====================================================================================
 */

#include "tree23.hpp"
#include <iostream>

using namespace std;

// 故意为之.
int comp(int a, int b)
{
    if (a > b) return  1;
    if (a < b) return -1;

    return 0;
}

//typedef  Tree23_Node<int>::Tree  Tree;
//typedef  Tree23_Node<int>::Node  Node;
typedef  Tree23<int>  Tree;

/*
 *void modRoot(Tree &root, Tree &newRoot)
 *{
 *    if(NULL == newRoot)
 *    {
 *        root->TreeAssert();
 *        return;
 *    }
 *
 *    root = newRoot;
 *    newRoot = NULL;
 *
 *    root->TreeAssert();
 *}
 */

/*
 *int main(int argc, char **argv)
 *{
 *    Tree root    = NULL;
 *    Tree newRoot = NULL;
 *
 *    root->Insert(10, newRoot);  modRoot(root, newRoot);
 *    root->Insert(20, newRoot);  modRoot(root, newRoot);
 *
 *    root->Insert(15, newRoot);  modRoot(root, newRoot);
 *    root->Insert(35, newRoot);  modRoot(root, newRoot);
 *    root->Insert( 5, newRoot);  modRoot(root, newRoot);
 *    root->Insert(30, newRoot);  modRoot(root, newRoot);
 *
 *    root->Insert(25, newRoot);  modRoot(root, newRoot);
 *    root->Insert(25, newRoot);  modRoot(root, newRoot);
 *
 *    root->Insert(33, newRoot);  modRoot(root, newRoot);
 *    root->Insert(100, newRoot); modRoot(root, newRoot);
 *    root->Insert(-5, newRoot);  modRoot(root, newRoot);
 *    root->Insert(13, newRoot);  modRoot(root, newRoot);
 *
 *    root->Traversal();
 *
 *    return 0;
 *}
 */

int main(int argc, char **argv)
{
    Tree root   ;

    root.Insert(10);
    root.Insert(20);

    root.Insert(15);
    root.Insert(35);
    root.Insert( 5);
    root.Insert(30);

    root.Insert(25);
    root.Insert(25);

    root.Insert(33);
    root.Insert(10);
    root.Insert(-5);
    root.Insert(13);

    root.Traversal();

    return 0;
}
